/* 
 * Arcms，一个基于J2EE架构内容管理系统
 * Copyright © Zrar Co., Ltd. All rights reserved.
 * Department:运营department
 * 更多信息请访问：
 * http://www.zrar.com/arcms
 */
package org.grayrabbit.cms.service.user;

import org.grayrabbit.cms.entity.User;
import org.grayrabbit.cms.vo.user.UserBean;
import org.grayrabbit.dao.util.Page;
import org.grayrabbit.service.GenericService;

/**
 * <b>OperLog</b>的service接口
 * @version 1.0,创建时间: 2011-05-16 16:04:46 
 */
public interface UserService extends GenericService {
	/**
	 * 根据主键查询实体
	 * @param userId
	 * @return
	 */
	User getUser(String userId);
	/**
	 * 批量删除
	 * @param key
	 */
	void delete(String[] key);
	/**
	 * 删除实体
	 * @param user
	 */
	void delete(User user);
	/**
	 * 保存实体
	 * @param user
	 */
	void save(User user);
	/**
	 * 根据bean组装统计查询条件(名称参数)
	 * @param user
	 * @return
	 */
	Page<User> getPage(UserBean userBean);
	/**
	 * 填充分页组件的查询：(名称参数)
	 * @param page
	 * @param userBean
	 */
	void list(Page<User> page, UserBean userBean);
	/**
	 * 检查登录名称唯一性
	 * @param userLoginName
	 * @return
	 */
	Boolean checkNameUnique(String userLoginName,String userId);
	/**
	 * 登陆名登陆验证判断
	 * @param user
	 * @param LoginType
	 * @return
	 */
	User getUserByLoginName(User user);
	/**
	 * 邮箱登陆验证判断
	 * @param user
	 * @return
	 */
	User getUserByEmail(User user);
	
	/**
	 * 根据登录名获取用户真实姓名
	 */
	String getUserRealName(String loginName);
	
	
	/**
	 * 在黑名单中删除该用户
	 * @param blacker
	 * @return
	 */
	void  removeBlacker(String blacker,String userId);
	/**
	 * 添加用户邮件黑名单
	 * @param blacker 被列黑名单的登录名
	 * @param userId 设置人的Id
	 * @return true 添加成功
	 *         false 添加失败：该用户不存在，或者添加时出现异常
	 */
	boolean addBlacker(String blacker,String userId);
	
	/**
	 * 添加用户邮件黑名单
	 * @param blackers 被列黑名单的登录名
	 * @param userId 设置人的Id
	 */
	void addBlackers(String[] blackers,String userId);

	/**
	 * 统计总共的用户数量
	 * @return
	 */
	int countUserNumber(UserBean user);

}